package TCP02;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.ServerSocket;
import java.net.Socket;

/**
 * @author 宋鑫宇
 * @version 1.0
 * 使用Socket 编写服务端,接收数据
 * 实现可以同时接收多个客户端的消息
 */
public class ServiceDemo2 {
    public static void main(String[] args) throws Exception {
        //1.注册端口,端口号必须和客户端一致
        ServerSocket ss = new ServerSocket(7777);

        //2.必须调用 accept 方法，等待接收客户端连接请求，建立Socket通信管道
        // a.如果实现接收多个客户端消息需要创建多个线程来并发
        //  定义一个死循环不断接收Socket管道连接
        Socket accept = null;
        while (true) {
            //b.每接收到一个客户端Socket管道，交给一个独立的子线程负责读取消息
            accept = ss.accept();
            //c.开始创建独立线程处理socket
            System.out.println(accept.getRemoteSocketAddress()+"上线了");
            new Thread(new ServiceReaderThread(accept)).start();
        }

    }
}


